1. Field of the Invention
The present invention relates to a service processing apparatus, a system, a program, and a recording medium. In particular, the invention relates to a service processing apparatus that executes a requested service, a service processing system that includes plural service processing apparatuses, a service processing program that causes a computer to function as the service processing apparatus, and a recording medium that has the service processing program stored therein.
2. Description of the Related Art
In a computer system where plural service requests are input and processes according to the individual input service requests are performed, in order to confirm whether the individual service requests are normally processed or the processes corresponding to the abnormally processed service requests are executed again during generation of a failure, identification information needs to be added to each service request to identify each service request. As a related technique, Japanese Patent Application Laid-Open (JP-A) No. 9-62526 discloses a technique that causes a PALIB (identifier adding component) as a client-side communication mechanism to add an identification (ID), which corresponds to a combination of three kinds of identifiers functioning as an ID to secure uniqueness of RPC (Remote Procedure Call) requests, to all RPC messages to be transmitted to a server, thereby transmitting the ID and the RPC message together.
In recent years, a service oriented architecture (SOA) that is a designing method to construct a large-scale system as a set of “services” has been developed. As a related technique, JP-A No. 2007-304951 discloses the following technique. According to this technique, in order to add or exchange services using a variation in the services in an SOA environment as a trigger and modify a business process after deletion, information indicating a relationship between services used by the business process, that is, a business process ID, a service ID associated with the business process ID, and a subsequent service ID indicating a service executed after a service indicated by the service ID is executed are set and managed in a business process service transition information table.
In general, when a process is performed using identification information in a computer system, it is needed to prevent identification information from overlapping and secure uniqueness of the identification information in the computer system. The prevention from overlapping the identification information may be realized by performing a numbering process accompanied with exclusive control. Specifically, all of identification information that is used in a specific database (DB) in the computer system is registered, the DB is logged when new identification information is numbered, non-registration information is set as new identification information in the DB, and the logging of the DB is released after the set new identification information is registered in the DB. Even in regards to the techniques that are disclosed in JP-A Nos. 9-62526 and 2007-304951, uniqueness of the ID needs to be secured. Therefore, although the securing of the uniqueness of the ID is not clearly described, it is assumed that the ID is numbered by a numbering process accompanied with exclusive control or a process similar to the numbering process.
However, in the computer system that processes plural service requests, when a service ID as identification information is added to each service request and numbering of the service ID is performed by the numbering process accompanied with exclusive control, an access is concentrated on the DB where the service ID is registered, and the numbering process accompanied with exclusive control becomes a bottleneck of a process in the computer system. As a result, performance of the computer system may be significantly lowered.
In particular, in the computer system that is constructed by applying the SOA, if programs are divided in functional units and a program for realizing a portion of the individual divided functions is already developed, the computer system is constructed by appropriating the developed program. Therefore, programs (service processing units) for realizing different functions are connected with multiple stages, and the service processing units of the multiple stages cooperatively process the individual service requests input to the computer system. In this configuration, when a failure, such as a communication error, is generated in the computer system, in the specific service processing unit that is located close to a failure generation place, the process is interrupted due to the generation of the failure, and plural information of the service request that becomes a process non-completion state is accumulated. In order to perform a control operation of restarting the process corresponding to the service request becoming the process non-completion state at timing when the failure is resolved, it is needed to grasp a process history of the services corresponding to the individual service requests (whether the information of the service request reaches the specific service processing unit through any path in the computer system (through any service processing unit), based on the information of the individual service request of the process non-completion state accumulated in the specific service processing unit.
However, as in the technique disclosed in JP-A No. 9-62526, when a different ID is simply added to the information of the individual service request, the process history of the individual service may not be determined, even though referring to the ID added to the information of the individual service request of the process non-completion state accumulated in the specific service processing unit. For this reason, in the configuration where the service processing units are connected with the multiple stages, it is difficult to grasp the process history with respect to the service request where the process is interrupted according to the generation of the failure. Further, the individual service processing unit may be constructed using the management table of the technique disclosed in JP-A No. 2007-304951, such that, whenever the individual service processing unit receives the information of the service request, information related to the process history of the service corresponding to the received information is simply registered in a single management table. In this case, however, an access is concentrated from the individual service processing unit of the computer system to the single management table, which results in significantly lowering performance of the computer system.